<?php
/**
 * huhaiqin,2025.2.5
 * 游戏模块羁绊接口
 */
namespace Game\Controller;
use Game\Controller\GameBaseController;

class IdolController extends GameBaseController{

    /**
     * huhaiqin,2025.2.5
     * 羁绊列表接口
     * //请求参数
     *   token: string //用户token,
     *  //返回参数
     *  idol_list:[{
     *      idol_id: int,//明星id
     *       favorability: int,//好感度（建议只存好感度，具体羁绊等级之类的在客户端计算）
     *   }]
     */
    public function idol_list(){

    }

    /**
     * huhaiqin,2025.2.5
     * 给羁绊送礼物
     *   //请求参数
     *  token: string //用户token,
     *   item_id: int //物品id
     *   quantity: int //数量
     *   //返回参数
     *   idol_id: int,//明星id
     *   favorability: int,//好感度（建议只存好感度，具体羁绊等级之类的在客户端计算）
     */
    public function support_idol(){
        if(!I('item_id')){
            _apiReturn(0, '物品id不能为空');
            return;
        }
        $item_id = I('item_id');
        if(!I('quantity')){
            _apiReturn(0, '数量不能为空');
            return; 
        }
        $quantity = I('quantity');
        $item = _get_item_table()->get($item_id);
        if(!$item || !$item->canUse){
            _apiReturn(0, '物品不存在或不可用');
            return;
        }
        $res = D('GameUser', 'Service')->support_idol($this->_uid, $item_id, $quantity);
        if(!$res['status']){
            _apiReturn(0, $res['msg']);
            return;
        }
        _apiReturn(1, '助力羁绊成功', ['user_info' => $this->_get_full_user_info()]);
        
    }

    /**
     * du 2025.2.14
     * 解锁羁绊
     * Summary of get_idol
     * @param mixed $idol_id
     * @return void
     */
    public function unlock_idol(){
        if(!I('idol_id')){
            _apiReturn(0, '羁绊id不能为空');
            return;
        }
        $idol_id = I('idol_id');
        $idol = _get_config_table()->getTbIdol()->get($idol_id);
        if(!$idol){
            _apiReturn(0, '羁绊不存在');
            return;
        }
        $res = D('GameUser', 'Service')->unlock_idol($this->_uid, $idol_id);
        if(!$res['status']){
            _apiReturn(0, $res['msg']);
            return;
        }
        _write_user_log($this->_uid, 'unlock_idol', $idol_id);
        _apiReturn(1, '羁绊解锁成功', ['user_info' => $this->_get_full_user_info(), 'idol_id' => $idol_id]);
        
    }

    /** 
     * du 2025.2.14
     * 激活羁绊
     * Summary of active_idol
     * @param mixed $idol_id
     * @return void
     */
    public function activate_idol(){
        if(!I('idol_id')){
            _apiReturn(0, '羁绊id不能为空');
            return; 
        }
        $idol_id = I('idol_id');
        $idol = _get_config_table()->getTbIdol()->get($idol_id);
        if(!$idol){
            _apiReturn(0, '羁绊不存在');
            return;
        }
        $res = D('GameUser', 'Service')->activate_idol($this->_uid, $idol_id);
        if(!$res['status']){
            _apiReturn(0, $res['msg']);
            return;
        }
        _write_user_log($this->_uid, 'activate_idol', $idol_id);
        _apiReturn(1, '羁绊激活成功', ['user_info' => $this->_get_full_user_info(), 'idol_id' => $idol_id]);
    }

    /**
     * du 2025.2.14
     * 领取羁绊奖励
     * Summary of claim_idol_reward
     * @param mixed $idol_level
     * @return void
     */
    public function claim_idol_reward(){
        if(!I('idol_level')){
            _apiReturn(0, '羁绊等级不能为空');
            return;
        }
        $idol_level = I('idol_level');
        $res = D('GameUser', 'Service')->claim_idol_reward($this->_uid, $idol_level); 
        if(!$res['status']){
            _apiReturn(0, $res['msg']);
            return; 
        }
        _write_user_log($this->_uid, 'claim_idol_reward', $idol_level);
        _apiReturn(1, '领取成功', ['user_info' => $this->_get_full_user_info(), 'reward_item_list' => $res['data']['reward_item_list']]);
    }
}